/** 当前环境是否是TG */
export function isTgEnv() {
  return !!Telegram.WebApp.initData;
}

/** 加密 TG 的启动参数 */
export function encryptTgWebAppStartParam(param: Record<string, any>) {
  return btoa(JSON.stringify(param));
}

/** 解密 TG 的启动参数 */
export function decodeTgWebAppStartParam(strParam?: string): Record<string, any> {
  if (!strParam) {
    const url = new URL(location.href);
    strParam = url.searchParams.get('tgWebAppStartParam') ?? '';
  }

  if (!strParam)
    return {};

  try {
    strParam = atob(strParam);
  }
  catch {}

  try {
    return JSON.parse(strParam);
  }
  // 当 strParam 不是 JSON 字符串时，则把它当作 ic 邀请码
  catch {
    return { ic: strParam };
  }
}
